package org.wwb.antbox.user.iservice.role;

import org.ant.commons.models.model.BaseIdModel;
import org.ant.commons.models.result.BaseEditResult;
import org.ant.commons.models.result.BaseListResult;
import org.ant.commons.models.result.BasePageResult;
import org.ant.commons.models.result.BaseResult;
import org.ant.iservice.common.IBaseService;
import org.wwb.antbox.user.model.role.entity.SysRole;
import org.wwb.antbox.user.model.role.model.SysRoleAddModel;
import org.wwb.antbox.user.model.role.model.SysRoleDelModel;
import org.wwb.antbox.user.model.role.model.SysRoleEditModel;
import org.wwb.antbox.user.model.role.model.SysRolePageModel;
import org.wwb.antbox.user.model.role.view.RoleListView;
import org.wwb.antbox.user.model.role.view.SysRolePageView;

/**
 * @Author Bond
 * @Date: 2019/10/4 19:55
 * @Description: 系统角色接口
 */
public interface ISysRoleService extends IBaseService<SysRole, String> {
    /**
     * 系统角色分页查询
     * @param sysSystemPageModel 分页查询参数模型
     * @return BasePageResult<SysRolePageView>
     */
    BasePageResult<SysRolePageView> getSysRolePage(SysRolePageModel sysSystemPageModel);

    /**
     * 添加系统角色
     * @param sysUserAddModel
     * @return BaseResult<String>
     */
    BaseResult<String> saveSysRole(SysRoleAddModel sysUserAddModel);

    /**
     * 删除系统角色
     * @param sysUserDelModel
     * @return BaseResult<Integer>
     */
    BaseResult<Integer> delSysRole(SysRoleDelModel sysUserDelModel);

    /**
     * 停用系统角色
     * @param sysUserDelModel
     * @return BaseResult<Integer>
     */
    BaseResult<Integer> disableSysRole(SysRoleDelModel sysUserDelModel);

    /**
     * 启用系统角色
     * @param sysUserDelModel
     * @return BaseResult<Integer>
     */
    BaseResult<Integer> enableSysRole(SysRoleDelModel sysUserDelModel);

    /**
     * 跳转修改系统角色
     * @param baseIdModel id
     * @return
     */
    BaseEditResult doEditSysRole(BaseIdModel<String> baseIdModel);

    /**
     * 编辑系统角色
     * @param sysUserEditModel
     * @return BaseResult<Integer>
     */
    BaseResult<Integer> editSysRole(SysRoleEditModel sysUserEditModel);

    /**
     * 获取系统角色列表  用于用户角色授权时的穿梭框
     * @return
     */
    BaseListResult<RoleListView> getSysRoleList4Transfer();

}
